#ifndef STATEMANAGER_H
#define STATEMANAGER_H

#include <QObject>

class AbstractState;

class StateManager: public QObject
{
    Q_OBJECT

public:
    explicit StateManager();
    ~StateManager();

    void addNewState(AbstractState *);

private:
    AbstractState* _currentState;
    QList<AbstractState*>* _states;

public slots:
    void setActiveState(AbstractState* state);
    void stateActivated();
    void mapClicked(float x, float y);

signals:
    void newStateAdded(AbstractState* state);
};

#endif // STATEMANAGER_H
